/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clases;

import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPCell;

import java.io.FileOutputStream;

import com.itextpdf.text.Font;
import com.itextpdf.text.Rectangle;
import java.io.FileNotFoundException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;



public class ReporteInstituciones extends Reporte{
    
    List instituciones;
    Institucion inst[];
    private String path;
    
    public ReporteInstituciones() {

    }

    public List getInstituciones() {
        return instituciones;
    }

    public void setInstituciones(List instituciones) {
        this.instituciones = instituciones;
    }

    public Institucion[] getInst() {
        return inst;
    }

    public void setInst(Institucion[] inst) {
        this.inst = inst;
    }
    
     public void generar(String path) throws FileNotFoundException {
        FileOutputStream f = new FileOutputStream(path);
        Document document = new Document();

        try {
            PdfWriter writer = PdfWriter.getInstance(document, f);
            Rectangle rct = new Rectangle(36, 54, 559, 788);
            //Definimos un nombre y un tamaño para el PageBox los nombres posibles son: “crop”, “trim”, “art” and “bleed”.
            writer.setBoxSize("art", rct);
            HeaderFooter event = new HeaderFooter(this.getId(),this.getNumAutenticacion());
            writer.setPageEvent(event);
            document.open();
            //Encabezado
            Font fuente = new Font(Font.getFamily("ARIAL"), 16, Font.BOLD);
            DateFormat dates = new SimpleDateFormat("dd/MM/yyyy");
            Date date = new Date();
            String encabezado = "\nCaracas " + dates.format(date) + "\n"
                    + "Programa de Igualdad de Oportunidades \n"
                    + "Reporte de PIO Nro." + getId() + "\n";
            Paragraph pa = new Paragraph(encabezado, fuente);
            pa.setSpacingBefore(20);
            pa.setSpacingAfter(10);
            pa.setIndentationLeft(50);
            document.add(pa);
            // cantidad de coordinadores
            String s = "Cantidad de Instituciones: " + this.getInstituciones().size();
            Paragraph p = new Paragraph(s);
            p.setSpacingBefore(20);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);

          // Instituciones
            s = "Instituciones:";
            p = new Paragraph(s);
            p.setSpacingBefore(20);
            p.setSpacingAfter(10);
            p.setIndentationLeft(50);
            document.add(p);
            PdfPTable table = new PdfPTable(2);
//            table.setWidthPercentage(100);
            s = "Id";
            PdfPCell cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
            s = "Nombre";
            cell1 = new PdfPCell(new Paragraph(s));
            cell1.setBorder(PdfPCell.NO_BORDER);
            table.addCell(cell1);
         
            for (int i = 0;i< instituciones.size();i++) {
                Institucion c = (Institucion) instituciones.get(i);
                cell1 = new PdfPCell(new Paragraph(String.valueOf(c.getId())));
                PdfPCell cell2 = new PdfPCell(new Paragraph(c.getNombre()));
                table.addCell(cell1);
                table.addCell(cell2);
            }
            document.add(table);
            document.close();
            f.flush();
            f.close();
        } catch (Exception e) {
                        //imprimimos los errores
            System.err.println(e);
            e.printStackTrace();
        }
    }
    
    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }
    
}
